// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'

// ============================== 导出表单视频 ============================== //

export default {
  // —————————————————————————————— 公共覆盖 —————————————————————————————— //

  bind: { type: String, default: 'video' }, // 绑定键名，触发 @change 事件
  tipPre: { type: String, default: '请上传' }, // 提示前缀

  // —————————————————————————————— 私有属性 —————————————————————————————— //

  limit: { type: Number, default: 0 }, // 个数限制 (0 表示不限)
  img: { type: String, default: '' }, // 上传图片 (以 /common 或 http 开头)
  icon: { type: String, default: 'el-icon-upload' }, // 上传图标 (以 el-icon-* 或 iconfont 开头)
  text: { type: String, default: '上传视频' }, // 上传文字)
  square: { type: [Number, String, Array], default: 100 }, // 方框大小 (100 / '100px' / [100, 100])
  gap: { type: [Number, String], default: 8 }, // 视频间距

  // —————————————————————————————— 删除属性 —————————————————————————————— //

  noDel: { type: Boolean, default: false }, // 是否全部不要删除
  allDel: { type: Boolean, default: false }, // 是否全部常显删除
  delImg: { type: String, default: '' }, // 删除文件 (以 /common 或 http 开头)
  delIcon: { type: String, default: 'el-icon-close' }, // 删除图标 (以 el-icon-* 或 iconfont 开头)

  // —————————————————————————————— 文件属性 —————————————————————————————— //

  ...CORE.WEB.BASE.FILE,
  pathTrans: { type: Function, default: (path) => CORE.video(path) }, // 路径转换方法

  // 示例：upload(file, folder).then((path) => null)
  upload: { type: Function, default: null }, // 上传方法 (为 null 则取 CORE.fileUpload)

  // —————————————————————————————— 上传属性 —————————————————————————————— //

  max: { type: Number, default: 5000 }, // 最大兆数 (可小数)
  maxErrPrefix: { type: String, default: '大小不能超过' }, // 超过最大的错误前缀
  maxErrSuffix: { type: String, default: '兆' }, // 超过最大的错误后缀

  accept: { type: String, default: 'video/*' }, // 接受上传的文件类型

  isPublic: { type: Boolean, default: false }, // 是否为公共空间 (为 false 则使用业务空间 service)
  folder: { type: String, required: true }, // 上传目录 (最终为 /${folder}/year/month/date/filename.xxx )

  // —————————————————————————————— 拖拽属性 —————————————————————————————— //

  noDrag: { type: Boolean, default: false }, // 有无拖拽
  noAnim: { type: Boolean, default: false }, // 有无动画
  animation: { type: Number, default: 200 }, // 动画毫秒数

  // —————————————————————————————— 原生属性 —————————————————————————————— //

  elProps: { type: Object, default: () => ({}) }, // el-upload 原生配置项
  dragProps: { type: Object, default: () => ({}) }, // vuedraggable 原生配置项
}
